home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 March / CMCD0305.ISO / Software / Shareware / Utilitare / emu / Emu8086_Setup_307c.exe / {app} / Samples / cmpsw.asm < prev    next >
Assembly Source File  |  2002-08-02  |  860b  |  52 lines

  1. ; This sample shows how
  2. ; to use CMPSW instruction
  3. ; to compare strings.
  4.  
  5. #make_COM#
  6.  
  7. ; COM file is loaded at 100h
  8. ; prefix:
  9.         ORG     100h
  10.  
  11. ; set forward direction:
  12.         CLD     
  13.  
  14. ; load source into DS:SI,
  15. ; load target into ES:DI:
  16.         MOV     AX, CS
  17.         MOV     DS, AX
  18.         MOV     ES, AX
  19.         LEA     si, dat1
  20.         LEA     di, dat2
  21.  
  22. ; set counter to data length:
  23.         MOV     CX, 4
  24.  
  25. ; compare until equal:
  26.         REPE    CMPSW
  27.         JNZ     not_equal
  28.  
  29. ; "Yes" - equal!
  30.         MOV     AL, 'Y'
  31.         MOV     AH, 0Eh
  32.         INT     10h
  33.  
  34.         JMP     exit_here
  35.  
  36. not_equal:
  37.  
  38. ; "No" - not equal!
  39.         MOV     AL, 'N'
  40.         MOV     AH, 0Eh
  41.         INT     10h
  42.  
  43. exit_here:
  44.  
  45.         RET
  46.  
  47. ; data:
  48. dat1 DW 1234h, 5678h, 9012h, 3456h
  49. dat2 DW 1234h, 5678h, 9012h, 3456h
  50.  
  51. END
  52.